/** @file	Enumerate.h
	@brief	This file is ONLY for enumeration
	@author
		jMulrO BOK
	@date
		July 22, 2006
 */

/*-----------------------------------------+      
|   @@@@@@@@@        @@@@@    @@@@@  @@@@@ |      
|   @@@@@@@@@@     @@@@@@@@   @@@@@  @@@@@ |      
|    @@     @@    @@@    @@@   @@    @@@   |      
|    @@     @@   @@@      @@   @@  @@@     |      
|    @@    @@    @@       @@   @@ @@@      |      
|    @@@@@@@    @@        @@   @@@@@@      |      
|   @@@@@@@@@   @@        @@  @@@@@@@@     |      
|   @@     @@@  @@       @@   @@@  @@@     |      
|   @@      @@  @@      @@@   @@    @@@    |      
|   @@      @@  @@@    @@@    @@     @@    |      
| @@@@@@@@@@@    @@@@@@@@   @@@@@@   @@@@  |      
| @@@@@@@@@@      @@@@@     @@@@@@    @@@  |      
+-----------------------------------------*/

//------------------------------------------------------------
//	Include
//------------------------------------------------------------
#ifndef ENUMERATE_H_BOK
#define ENUMERATE_H_BOK

//------------------------------------------------------------
//	Enum
//------------------------------------------------------------

/*!
* \enum ObjectType
* \brief All Type of Objects
*/
enum ObjectType
{
		ObjectBase = 0,
		ObjectUI,
        ObjectButton,        
		ObjectEditBox,
		ObjectRichEditBox,
        ObjectImageCopy,
        ObjectStaticImage,
		ObjectMap,
		ObjectSubMap,	
		ObjectStaticText,

		ObjectPanel,
		ObjectSquarePanel,

		ObjectSprite,
		ObjectLabel,

		ObjectPrimitveShape,

		//Number of items
        NbrOfObject
};

enum InputType
{
	MouseClick = 0,
	MouseRelease,
	RMouseRelease,
	MouseMove,
	KeyDown,
	NetInput,
	CharInput,

	//Number of items
	NbrOfInput
};

enum GameState
{
	GameReady = 0,
	GameChessmanSelected,
	GameRageAttack,

	NbrOfGameState
};

enum ChessmanState
{
	ChessmanUpsideDown = 0,
	ChessmanReady,
	ChessmanSelected,
	ChessmanRageAttack,
	ChessmanDead,

	NbrOfChessmanState
};

enum ChessmanType
{
	Default = -1,
	Pawn = 0,
	Rook,
	Knight,
	Bishop,
	Queen,
	King,
	DarkKnight,

	NbrOfChessmanType
};

enum GameCommandType
{
	GameCMDTurnover,
	GameCMDSelect,
	GameCMDUnselect,
	GameCMDMove,
	GameCMDAttack,
	GameCMDRageActivate,
	GameCMDRageMove,

	NbrOfGameCommandType
};

enum RageType
{
	RagePawnPromote,
	RageRook,
	RageKnight,
	RageBishop,
	RageQueen,
	RageKing,
	RageDarkKnight,
	RageKnightPromote,

	NbrOfRageType
};

enum RageStyle
{
	NormalRage,
	SpecialRage,

	NbrOfRageStyle
};

enum GameResult
{
	GameUnfinish = 0,
	Player1Win,
	Player2Win,
	GameDraw,

	NbrOfResult
};
#endif
